home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / scheme / pcscheme / geneva / pcscheme.exe / DOC / SCHEME.ASC < prev    next >
Encoding:
Text File  |  1994-01-03  |  22.5 KB  |  605 lines

  1.  
  2.  
  3.  
  4.  
  5.            PC-Scheme/Geneva 4.02 PL1 log
  6.              Larry Bartholdi        Marc Vuilleumier
  7.  
  8.                      schemege@cui.unige.ch
  9.  
  10.  
  11.                         December 22, 1993
  12.  
  13. 1   Short Takes
  14.  
  15.  
  16.    o This document is there as a placeholder for all modifications done. As a
  17.      principle items are not suppressed or modified; new entries are added in
  18.      chronological order.
  19.  
  20.    o The current version is PCS 4.02 Patch level 1, dating 1993-dec-07. The
  21.      Patch level number will be increased each time a bug is found and fixed.
  22.  
  23.    o PCS is distributed freely in source and binary form.  You can freely do
  24.      whatever you want with this product, including modifying the source code
  25.      for your own use.
  26.  
  27.      Some time ago, we were very proud of the quality of our source files (at
  28.      least compared to TI distribution files).  Now our version suffered from
  29.      many partial revisions, and a general cleaning would have been necessary.
  30.      Sorry, but we don't have time for this today...
  31.  
  32.    o We are working hard on documentation: :b:ut please be indulgent.  As
  33.      PCS/GE is very close to TI's 3.03 release, we suggest you turn to Texas
  34.      Instruments' documentation.  You may order TI's manual at the MIT
  35.      press. It's called:
  36.      PC Scheme: Users Guide and Language Reference Manual, Trade Edition,
  37.      Texas Instruments, 416 pp, 1990, ISBN 0-262-70040-9. All our mod-
  38.      ifications should be documented either here, in the file MANUAL.TEX or
  39.      in the reference card.
  40.  
  41.    o We wrote a Quick Reference Card for PC Scheme/Geneva. The source file
  42.      in TEX format is included in the distribution package. You should print
  43.      it using a good laser printer (400 dpi or 600 dpi are much better than
  44.      300 dpi), and if available, on A3 paper, since it is pretty big (40 cm by
  45.      21 cm, i.e. 16 in by 8.3 in). If you find something unclear, or if somethi*
  46.  *ng
  47.      is not correct, please send an E-mail.  We will soon print a thousand
  48.      high-quality reference cards; if you are interested, send us a message.
  49.  
  50.    o The authors assume no responsibility in case of damage due to a bug
  51.      in PCS. Bug hunting and fixing is nevertheless an important activity for
  52.      them.  If you find a bug, please send a message to the E-Mail address
  53.      below. You will be rewarded by an authentic Swiss present: : :
  54.  
  55.    o The official FTP server is "cui.unige.ch".  PCS is there in directory
  56.      "pub/pcs". Different file formats are present:
  57.  
  58.  
  59.                                  1
  60.  
  61.  
  62.      PCSCHEME.EXE       The big archive, containing everything except the
  63.          source code.  It is an archive made into an executable file for con-
  64.          venience purposes. The compressor used is ARJ, though you won't
  65.          need it.
  66.  
  67.      PCSCHEME.TAZ      A Unix tar-file, compressed with gzip. It contains
  68.          exactly the same files as PCSCHEME.EXE.
  69.  
  70.      PCSCHEME.FIL      The list of files in the tar archive.
  71.  
  72.      SOURCES.EXE     Another big archive, containing all source files for PC
  73.          Scheme/Geneva, for use with Borland C++ 3.1 programming tools;
  74.          again, it is an archive made into an executable file for convenience
  75.          purposes.
  76.  
  77.      SOURCES.TAZ     A Unix tar-file, compressed with gzip.  It contains
  78.          exactly the same files as SOURCES.EXE.
  79.  
  80.      SOURCES.FIL    The list of files in the tar archive.
  81.  
  82.    o PCS has its own mailbox: "schemege@cui.unige.ch". You are asked to
  83.      use this address, so that developers know at a glance they receive mail
  84.      concerning PCS.
  85.  
  86.      The developers themselves can be reached at "lbartho@cui.unige.ch"
  87.      and "mvuilleu@cui.unige.ch".
  88.  
  89.    o This work is supported by the University of Geneva, Switzerland.
  90.  
  91.  
  92.  
  93. 2   What is PCS?
  94.  
  95.  
  96. This program is based, and includes source code, of Texas Instrument's PC-
  97. Scheme 3.03 (1988).  PCS/GE is the most performant Scheme interpreter for
  98. MS-DOS based low-cost 16 bit microcomputers from the iAPX 86,88 series; it
  99. also runs on 386/486 computers, but is not as performant as other systems which
  100. use specific enhanced hardware capabilities, even if PCS/GE needs indeed much
  101. less memory.
  102.  
  103.  
  104.  
  105. 2.1   Copyrights
  106.  
  107. PCS/GE is protected by Texas Instrument's Copyright (see the text file named
  108. COPYRIGHT.TXT), but is free to distribute to everyone.  Release 4.xx
  109. enhancements, corrections and translated source code are the property of the
  110. University of Geneva and the authors. BGI drivers are cOBorland International.
  111.  
  112.  
  113.  
  114. 3   New features (since 3.03)
  115.  
  116.  
  117.    o 486 Compatibility (which was not completely achieved by TI PCS 3.03)
  118.  
  119.    o Text mode interface has been extended: every existing video mode (includ-
  120.      ing all graphic modes, Ega 43 lines, Vga 50 lines, Svga 132 columns: :):
  121.      are supported. The TEXT-MODE primitive allows you to set change between
  122.      modes if this can be done through an unique BIOS-call; the special mode
  123.      64 puts the adapter in Ega 43 or Vga 50 lines text if available, like Bor-
  124.      land C's textmode function. TEXT-MODE can do what SET-VIDEO-MODE!
  125.      was doing in TI PCS.
  126.  
  127.    o A block cursor is emulated when necessary; it doesn't clobber the screen
  128.      and works for all video modes.
  129.  
  130.  
  131.  
  132.                                  2
  133.  
  134.  
  135. o Text attributes are compatible between graphic and text modes: the four
  136.   high-order bits set the background color, the four low-order bits set the
  137.   foreground color.  The only difference is that MSBit means blinking in
  138.   text mode and Bright Background in graphic mode.
  139.  
  140. o In order to achieve transparency between text and graph modes, the func-
  141.   tions WINDOW-SAVE-CONTENTS and WINDOW-RESTORE-CONTENTS have been
  142.   extended to work in the same way no matter which mode you are in.
  143.   That means you can for instance save the contents of the 'CONSOLE win-
  144.   dow, switch to graphics mode and restore it on the graphic screen as if no
  145.   change occurred. Note that graphic mode window-saving is done through
  146.   pattern matching, and might not work if you've drawn pixels on the text.
  147.   It is also not very fast.
  148.  
  149. o Edwin has been adapted to use advantages of special video modes. But
  150.   due to its complex storage system, the screen dimensions are only detected
  151.   at startup.  That means that if you want to use another screen width
  152.   after window size after having edwin already started, you should call first
  153.   (REMOVE-EDWIN) to unload edwin from memory and let it start up again.
  154.  
  155. o You are encouraged to use the nice features of window primitives as de-
  156.   scribed in your PCS reference. You might add to the window-manipulation
  157.   primitives the new one coming from TI PCS 3.03: (NEW-WINDOW string)
  158.   where string is the title of a new window to be created by the user, using
  159.   arrow keys.
  160.  
  161. o PCS/GE also introduces some simplified top-level screen manipulation
  162.   primitives to help you switching to mixed text and graphic modes:
  163.  
  164.   (FULL-SCREEN) makes your 'CONSOLE window as big as possible, reserving
  165.   the last line for garbage collecting information, while (SPLIT-SCREEN n)
  166.   makes the 'CONSOLE window n lines big, at the bottom of the screen, which
  167.   allows you to act interactively on the graphic screen without scrolling up
  168.   what you've drawn.
  169.  
  170. o The %GRAPHICS primitive has been totally modified; no program should
  171.   use it directly.  All the TI graphic primitives have been removed, and
  172.   you should use the new Borland Graphic Interface (BGI) instead; if you
  173.   really need to, it won't be a problem to write a compatibility module since
  174.   BGI graphics are much more sophisticated and programmer-friendly. See
  175.   MANUAL.TEX.
  176.  
  177. o In addition to BGI functions, PCS/GE allows you to customize the coor-
  178.   dinate system, linearly or not, and using as much dimensions as desired.
  179.  
  180. o The READ primitive, used for the Top-Level, works now like DOSKEY:
  181.   you can recall previous lines using up and down arrows, go back, insert text
  182.   and so on. (PUSH-HISTORY item/list) allows you to insert a string or a list
  183.   into the DOSKEY history buffer; (GET-HISTORY) returns the history as
  184.   a list of strings. (CLEAR-HISTORY) empties the history. These primitives
  185.   allow you to easily save and restore the DOSKEY history buffer.
  186.  
  187. o EXIT now may receive a numerical parameter known as DOS return-code,
  188.   which can be tested using ERRORLEVEL within a batch file, for instance.
  189.  
  190. o OBJECT-HASH and OBJECT-UNHASH now give a real hash key, based on a
  191.   simple additive algorithm, rather than putting all the objects in a single
  192.   linked list.
  193.  
  194.  
  195.  
  196.                               3
  197.  
  198.  
  199. o DOS-GETDIR has been added for aesthetic reasons (DOS-CHDIR hasn't been
  200.   changed)
  201.  
  202. o Stack-overflow during I/O and related exceptions don't throw you away
  203.   as they did before.
  204.  
  205. o Transcendental functions (trigo & expt) are now built-in, using 80x87
  206.   if available or Borland's powerful emulation otherwise.  XLI has been
  207.   removed.
  208.  
  209. o Numerical exceptions are driven by interrupts rather than tests, which is
  210.   faster and much more reliable.
  211.  
  212. o The buggy Expanded and Extended versions have been replaced by a
  213.   single PCS.EXE which drives up to 2 Mb Expanded Memory (LIM 3 spec
  214.   or later) when available.  Extended memory is used when available for
  215.   swapping out PC Scheme during dos shells (see DOS-CALL); this let you
  216.   quickly start your favorite editor from within PC Scheme.
  217.  
  218. o A new type of objects has been added:  inline code.  It allows you to
  219.   use your own very short assembler-written functions as any other Scheme
  220.   lambda-function. A set of macro designed for Scheme objects manipula-
  221.   tion from assembly language is given, with documentation and examples.
  222.   See INLINE.DOC.
  223.  
  224. o As a demo of inline-code, PEEK.FSL (which loads PEEK.BIN) imple-
  225.   ments low-level memory and bus input/output primitives. Source code is
  226.   also dirtibuted (See PEEK.S and PEEK.ASM).
  227.  
  228. o %LOGIOR and %LOGAND undocumented bitwise operators on 16-bits words
  229.   have been replaced by true Scheme functions, accepting a variable num-
  230.   ber of arguments, and working on integers of any size:  BITWISE-OR,
  231.   BITWISE-AND and BITWISE-XOR.
  232.  
  233. o Functions accepting a variable number of arguments such as +, *, <= and
  234.   APPEND can now receive any number of arguments (even more than 62) if
  235.   called with APPLY (useful for big summations, and so on).
  236.  
  237. o Original PCS-MACHINE-TYPE which recognized only some Texas Comput-
  238.   ers was enhanced.  It is now a list of the form '((CPU . SPEED) NDP
  239.   ROMCHKSUM) where CPU is 80x86 or 8088, NDP is 80x87 or 0 if no copro-
  240.   cessor found, SPEED (in MHZ) is based on a memory-transfers benchmark
  241.   (the most time-consuming operation for PCS/GE) and ROMCHKSUM
  242.   can be used to recognize a computer (for example the HP95LX to setup
  243.   a small 'CONSOLE window and install the non-standard BGI driver; see
  244.   SCHEME.INI).
  245.  
  246. o PCS can now produce directly fast-load files. Given a program FOO.S,
  247.   just call (FAST-SAVE-FILE "FOO.S" "FOO.FSL") and everything's done!
  248.  
  249. o Real time functions have been cleaned up. You can now obtain current
  250.   date and time in numbers as well as in english, french, or your own lan-
  251.   guage.
  252.  
  253. o Mouse is now fully supported in PC Scheme/Geneva.  A lot of different
  254.   cursor shapes are available. You can even write your own interrupt handler
  255.   in Scheme, as examples show you.
  256.  
  257.                               4
  258.  
  259.  
  260.    o We propose you four different editors:
  261.  
  262.   Brief  The most powerful of these four editors.  It is property of Borland
  263.          International and you have to buy it if you plan to use it. We provide
  264.          an interface to launch it from within PC Scheme, as well as a set of
  265.          macros for Scheme indentation, electric parenthesis, buffer evaluation
  266.          and file summary.
  267.  
  268.      Ed  An Object-Oriented editor package written in Scheme. It is available
  269.          either as standard text editor (uses about 10 Kb plus 2 Kb per in-
  270.          stance of editor) or as a powerful Scheme editor (uses about 20 Kb
  271.          plus 4 Kb per instance). Full version includes Scheme indentation,
  272.          permanent parenthesis level coloration and buffer evaluation.
  273.  
  274.          Moreover, you can drive it from within your Scheme programs and
  275.          customize it.  By default, it uses Brief's key sequences, which are
  276.          very convenient with traditional extended keyboards.
  277.  
  278.  EdLisp  As for Brief, it is an external editor which uses less than 1 Kb of yo*
  279.  *ur
  280.          internal Scheme memory.  It was written for you by a french team
  281.          (thanks!)  and includes automatic indentation, electric parenthesis
  282.          and partial evaluation.
  283.  
  284.   Edwin  It was written in Scheme, uses Emacs key sequences, and takes
  285.          120 Kb of your available Scheme memory.  This was the only edi-
  286.          tor available in TI's PCS.
  287.  
  288.  
  289.  
  290. 4   Summary of PCS/GE's New Primitives
  291.                                                                      "
  292. Some VM instructions changed significantly.  Don't forget to rebuild all your
  293. own FSL modules from source.
  294.  
  295.  
  296.  
  297. 4.1   Text Mode
  298.  
  299. (TEXT-MODE n)
  300.  
  301. Turns video adapter into hardware mode n. This is an enhanced version of the
  302. old SET-VIDEO-MODE!. Regular values are:
  303.     n  |Size and Colors                   Devices
  304.    ____|_______________________________________________________
  305.      0  |40 x 25, Black & white       CGA and superior
  306.      1  |40 x 25, Color                       "
  307.      2  |80 x 25, Black & white               "
  308.      3  ||80 x 25, Color                      "
  309.  
  310.      7  ||80 x 25, Monochrome      Hercules and Monochrome
  311.  
  312.     64 | 80 x 43or50, Color    EGA (43 lines) and VGA (50 lines)
  313.        |
  314.    Any other value given in your video adapter user manual can be used.
  315. If the resulting mode is a "graphic mode" (in the sense of BIOS), a block-
  316. cursor will appear, and display will be slower, but PCS will still consider
  317. your are working with text only.  If you want to draw and plot, always use
  318. INIT-GRAPH, RESTORE-CRT-MODE, SET-GRAPH-MODE or CLOSE-GRAPH to set-up
  319. your video adapter (see BGI.TEX).
  320.  
  321.  
  322. (SPLIT-SCREEN nlines)
  323.  
  324. Specify how much text lines should be reserved for 'CONSOLE window (the stan-
  325. dard top-level I/O window). When you turn to graph mode, PCS/GE calls for
  326.  
  327.  
  328.  
  329.                                  5
  330.  
  331.  
  332. you SPLIT-SCREEN so your drawings won't be scrolled as you type. You can use
  333. SPLIT-SCREEN to change the number of lines reserved for text.
  334.  
  335.  
  336. (FULL-SCREEN)
  337.  
  338. Allocate the maximum number of lines for 'CONSOLE window. PCS/GE calls it
  339. for you when you get back to text mode.
  340.  
  341.  
  342. (WINDOW-SET-ATTRIBUTE! window attribute value)
  343.  
  344. This primitive is not new, but the meaning of value has been precised; it is not
  345. as hardware-dependent as before, and doesn't change from text to graphic mode
  346. (assuming that you can display the same number of colors).
  347.    Value is always 8 bits: _ a _ b _ c _ d __ e _ f _ g _ h _ where bits
  348. a-d code for background color, bits e-f for text color.  Usually, b-d and f-h
  349. are the RGB components of the color, while a & e are intensity bits (on some
  350. adapters, intense background means blinking character).
  351.  
  352.  
  353. (WINDOW-SAVE-CONTENTS window)
  354.  
  355. (WINDOWS-RESTORE-CONTENTS window contents)
  356.  
  357. Recognize these attributes and translate them from text to graphic and vice-
  358. versa.
  359.  
  360.  
  361. 4.2   Arithmetic
  362.  
  363. (BITWISE-OR [n1 [n2 [: :]:]])
  364.  
  365. (BITWISE-AND [n1 [n2 [: :]:]])
  366.  
  367. (BITWISE-XOR [n1 [n2 [: :]:]])
  368.  
  369. Computes the logical function on all bits of its arguments, which have to be
  370. integers.
  371.    All floating-point functions have been implemented directly, using the NDP
  372. (80x87) when present, instead of using the dirty, memory consuming XLI pack-
  373. age. Their syntax remains the same and won't be repeated.
  374.  
  375.  
  376. 4.3   Hardware-level Primitives
  377.  
  378. These primitives are not fundamental to scheme and should be loaded using the
  379. command: (LOAD (%system-file-name "PEEK.FSL"))
  380.    You might play with them (I made them to show students computer archi-
  381. tecture) but remember that programming and hacking are two very different
  382. things: : :
  383.  
  384.  
  385. (PEEK type address [length])
  386.  
  387. Reads data directly from memory.
  388.  
  389.    o type can be either 'BYTE or 'WORD.
  390.  
  391.    o address is a 20-bit address (for instance #xB8000 is address of the main
  392.      text screen buffer for color adapters)
  393.  
  394.    o length is optional. If not given, PEEK returns a single number. Otherwise,
  395.      PEEK returns a list of contents of consecutive memory locations, starting
  396.      with address and incrementing with size of type.
  397.  
  398.  
  399.  
  400.                                  6
  401.  
  402.  
  403. (POKE type address data)
  404.  
  405. Writes data directly into memory (use carefully !)
  406.  
  407.    o type can be either 'BYTE or 'WORD.
  408.  
  409.    o address is a 20-bit address.
  410.  
  411.    o data can be either a single number or a list of numbers to be poked at
  412.      consecutive memory locations, incrementing with size of type.
  413.  
  414.  
  415. (IN-PORT type address)
  416.  
  417. Gets a value from an I/O port.
  418.  
  419.    o type can be either 'BYTE or 'WORD.
  420.  
  421.    o address is the I/O port address (usually in range #x0: :#:x3FF)
  422.  
  423.  
  424. (OUT-PORT type address data)
  425.  
  426. Sends a value to an I/O port.
  427.  
  428.    o type can be either 'BYTE or 'WORD.
  429.  
  430.    o address is the I/O port address.
  431.  
  432.    o data is a number.
  433.  
  434.  
  435.  
  436. 4.4   Miscellaneous Functions
  437.  
  438. (PUSH-HISTORY string/list)
  439.  
  440. Push the string (or the list of strings) into the READ history buffer, as if it*
  441.  * was
  442. the last line(s) the user just typed; it has no direct effect on the program, b*
  443.  *ut
  444. allows the user to recall the string(s) just by pressing up-arrow and modify th*
  445.  *em
  446. (DOSKEY-like interface).
  447.  
  448.  
  449. (GET-HISTORY)
  450.  
  451. Returns the list of last lines typed during READs. In conjunction with PUSH-HIS*
  452.  *TORY,
  453. this allows a program to save and then restore the top-level DOSKEY context.
  454.    When you use the (EXIT) primitive to quit Scheme, without giving an ER-
  455. RORLEVEL parameter or with ERRORLEVEL = 0, a file containing this in-
  456. formation named HISTORY.INI is always created in the default directory. It
  457. contains already a call to PUSH-HISTORY, so you just need to insert the com-
  458. mand (load "HISTORY.INI") in your SCHEME.INI and the PCS DOSKEY
  459. environment will be restored.
  460.  
  461.  
  462. (CLEAR-HISTORY)
  463.  
  464. (DOS-GETDIR)
  465.  
  466. Equivalent to (DOS-CHDIR ".") but visually better.
  467.  
  468.  
  469. (FAST-SAVE-FILE source [dest])
  470.  
  471. Makes a fast-loadable file from a scheme source file.  If dest is not given, the
  472. source name is taken with an ".FSL" extension instead of the existing one. Note:
  473. you don't need COMPILE-FILE any more: : :
  474.  
  475.  
  476.  
  477.                                  7
  478.  
  479.  
  480. (FAST-SAVE '(PCS-CODE-BLOCK ...)  [dest])
  481.  
  482. Assuming the given PCS-CODE-BLOCK is correct (as are those given by COMPILE),
  483. FAST-SAVE outputs the fast-load form of the code-block to port dest or to the
  484. default output-port if no dest is given. This is the low-level primitive used by
  485. FAST-SAVE-FILE, as COMPILE is the low-level primitive used by COMPILE-FILE.
  486.  
  487.  
  488. (CLOCK)
  489.  
  490. Returns the number of ticks since the start of PC Scheme. A tick as about 55
  491. milliseconds (1=CLOCK-TICK ). The purpose of CLOCK is to measure time deltas.
  492. The time in seconds could be determined with:
  493.  
  494. (let ((start (clock)))
  495.   (do-my computation)
  496.   (/ (- (clock) start) CLOCK-TICK))
  497.  
  498.  
  499.  
  500. 5   Things That Didn't Change For Now
  501.  
  502.  
  503. The average speed of the interpretor didn't change significantly; The change
  504. from Small to Medium model and the cleaning of some fast-but-ugly tricks are
  505. compensated by the more efficient compiler and some optimizations we made
  506. on essential VM instructions and arithmetic.                         "
  507.    R4RS is not yet achieved.
  508.  
  509.  
  510.  
  511. 6   Features Removed
  512.  
  513.  
  514.    o XLI support was removed because it was memory-consuming, and not
  515.      very performant.  You can easily link functions written in C using the
  516.      %ESC opcode; see asmlink.c and escape.c.
  517.  
  518.    o Protected mode Scheme was removed (use SCM if you really need somthing
  519.      that doesn't run in real 8086 mode).
  520.  
  521.    o MAKE_FSL.EXE doesn't exist any more.  It is now directly imple-
  522.      mented in PCS by the new FAST-SAVE-FILE function, which is much
  523.      more convenient. There are also some weird things happening with MAKE_FSL
  524.      and large or floating-point numbers.
  525.  
  526.  
  527.  
  528. 7   If we had time, we would do: : :
  529.  
  530.  
  531.    o True R4RS '() handling, Multiple values
  532.  
  533.    o Hardware Interrupts Scheme procedures (complement to engines)
  534.  
  535.    o Music Driver as example of Interrupt procedure
  536.  
  537.    o Integration of the Scheme Utilities written by Clyde Camps (TI)
  538.  
  539.  
  540.  
  541. 8   Ideas and Questions
  542.  
  543.  
  544. There is a very complete Virtual Machine Low-Level Debugger, but not doc-
  545. umented.  You can play with it if you wants, but remember it was developed
  546. for VM elaboration only. If you consider it from a theoretical point of view, in
  547.                                  8
  548.  
  549.  
  550. association with the auto-compiler written in scheme, it might be a quite good
  551. support for a course on Compiler Systems. Ask us for it if you are interested.
  552.  
  553.  
  554.  
  555. 9   Bug fixes
  556.  
  557.  
  558. Here bug fixes are described in reverse correction order (that is, the most rec*
  559.  *ent
  560. corrections come first).
  561.  
  562. 1993-dec-8 Release 4.02 PL1 Ready! (sorry, we didn't write down all the bug
  563.      fixes)
  564.  
  565. 1993-oct-24 Fixed bug with port?: when called with a symbol, returns garbage.
  566.  
  567.      Fiddled with directory structure, ready for distribution.
  568.  
  569. 1993-oct-13 Added negative bases to integer->string. Created new opcodes
  570.      for divide and modulo. Fixed a problem with read-atom when symbols
  571.      and strings of more than 256 characters are read.
  572.  
  573. 1993-oct-4 Changed (runtime) so that it returns ticks, not hundredths.
  574.  
  575. 1993-oct-2 Fixed a bug with remove-edwin (symbols not removed).  Set up
  576.      plans for a desktop environment.  Fixed some problems with Brief:  ^A
  577.      yielding multiple completions, Tab indenting the line even if the cursor
  578.      is not at the start, and a bug in the indentation algorithm:  "(test_"
  579.      followed by Cr indents at +6.
  580.  
  581. 1993-sep-30 Added MOUSE package with primitives.
  582.  
  583. 1993-sep-28 Added symbolice constants to set-file-position. Fixed a bug with
  584.      files greater than 64K.
  585.  
  586. 1993-sep-28 Added string support to get/set-file-position.
  587.  
  588. 1993-sep-28 Fixed bug with dos-file-size: zopen did not set all 32 bits.
  589.  
  590. 1993-sep-27 Fixed (length l) so that it accepts only proper lists.
  591.  
  592. 1993-sep-27 Modified Window-reverse-text!  so that it yields the comple-
  593.      mentary color in fore- and back-ground.
  594.  
  595. 1993-sep-27 Fixed a bug with bitwise-and, traced to read.s:allocint:
  596.      leading 0's should be suppressed when allcoating a bignum.
  597.  
  598. 1993-sep-27 Bug in Read-atom, fixed by MV/lb.
  599.  
  600. 1993-sep-11 Fast-load crashes when too many nested files are loaded. The
  601.      exception is now correctly handled, and the limit has been increased to 8.
  602.  
  603.  
  604.                                  9
  605.